Automatic scrolling

ABSTRACT

A scrolling device for a computer may include a touch-sensitive surface, which may be elongated and/or have one or more active regions. Scrolling may be performed in manual as well as automated ways that may result in more accurate and efficient scrolling. Scrolling, as displayed on the screen, may further be rounded to the nearest document text line and/or distance unit, even though a more precise scrolling location value may be stored and/or tracked.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is related to U.S. patent application Ser. No.______, entitled “Touch Sensitive Device for Scrolling a Document on aDisplay,” attorney docket no. 03797.00124, and U.S. patent applicationSer. No. ______, entitled “Manual Controlled Scrolling,” attorney docketno. 03797.00125, both filed simultaneously with the present application,hereby incorporated by reference as to their entireties.

FIELD OF THE INVENTION

[0002] The present invention is directed generally to the scrolling of adocument on a display screen or the like, and more particularly tovarious apparatuses and methods for controlling document scrolling usinga touch-sensitive scrolling device.

BACKGROUND OF THE INVENTION

[0003] Scrolling of documents, such as word processing documents orInternet web pages, for example, is a common task when using computingsystems. There have been recent efforts focusing on methods andtechniques for providing pleasant and efficient user interfaces forscrolling. It has been observed that people perform many real-worldtasks using both hands. When users operate computers, however, they areoften required to use a single hand for many major interface activities,such as moving a mouse. The single hand used is usually the dominanthand of the user. Even when using the mouse to scroll through adocument, the dominant hand is typically used. This can be inefficientwhere the dominant hand may be required for other tasks as well, such asentering numbers on a numeric pad or selecting objects on the screen.

[0004] Known methods of scrolling documents are also not as intuitive oreasy to use as they could be. For instance, conventional systemstypically require that the user first move a cursor on the screen to ascroll bar before scrolling with a mouse, or that the user press arrowkeys on a keyboard or rotate a scroll wheel on a mouse. However, some ofthese techniques do not allow for precise scrolling or the ability tomove to a distant portion of the document quickly and accurately. Thereis a need for better ways to accurately control document scrolling.There is also a need for providing the ability to accurately controldocument scrolling without the user having to move his or her hands fromthe keyboard.

SUMMARY OF THE INVENTION

[0005] According to one aspect of the present invention, atouch-sensitive scrolling device, preferably in the form of an elongatedtouch-sensitive strip-shaped surface, may be used to manually controlscrolling. The scrolling device may, however, be of various shapes, suchas square, rectangular, oblong, circular, cross-shaped, X-shaped, andoval.

[0006] Various automatic scrolling functions may be implemented usingthe scrolling device. According to an aspect of the present invention,various techniques and/or gestures may be used to initiate anauto-scroll mode and/or other mode. These techniques are related toregional positioning of the user's finger (or other pointer) for athreshold amount of time and/or with at least a threshold amount ofpressure. In a hold-and-scroll initiation technique, the speed of theautomatic scrolling may be determined by finger pressure and/or otherfactors. For instance, if the user initiates contact with the scrollingdevice within an up-scrolling or down-scrolling region, then thedocument may in response begin to auto-scroll following an optionalshort delay. The rate of automatic scrolling may depend upon the amountof finger/pointer pressure applied to the surface of the scrollingdevice. To more accurately calculate the amount of finger pressureapplied, a specialized algorithm may be used.

[0007] According to another aspect of the present invention, if the usertouches and holds the pointer anywhere on the touch-sensitive surface ofthe scrolling device without moving or without substantial movement,then after an optional short delay an auto-scrolling mode may beinitiated such that subsequent motions of the pointer along thescrolling device surface causes to the document to scroll at a raterelated to the distance between the initial contact point and thecurrent position of the user's pointer.

[0008] According to yet another aspect of the present invention,different scrolling rates and/or sensitivities may be utilized forscrolling in one direction (e.g., scrolling up) as compared withscrolling in another direction (e.g., scrolling down). This may helpaccount for the shape of the touch-sensitive surface of the scrollingdevice and/or bezel and/or for the fact that more of the user'sfinger/pointer may be expected to contact the surface of the scrollingdevice in one area of the surface as compared with another area of thesurface, due to the position of the hand and/or shape of thefinger/pointer.

[0009] These and other features of the invention will be apparent uponconsideration of the following detailed description of preferredembodiments. Although the invention has been defined using the appendedclaims, these claims are exemplary in that the invention is intended toinclude the elements and steps described herein in any combination orsubcombination. Accordingly, there are any number of alternativecombinations for defining the invention, which incorporate one or moreelements from the specification, including the description, claims, anddrawings, in various combinations or subcombinations. It will beapparent to those skilled in the relevant technology, in light of thepresent specification, that alternate combinations of aspects of theinvention, either alone or in combination with one or more elements orsteps defined herein, may be utilized as modifications or alterations ofthe invention or as part of the invention. It is intended that thewritten description of the invention contained herein covers all suchmodifications and alterations.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010] The foregoing summary of the invention, as well as the followingdetailed description of preferred embodiments, is better understood whenread in conjunction with the accompanying drawings, which are includedby way of example, and not by way of limitation with regard to theclaimed invention. In the accompanying drawings, elements are labeledwith three-digit reference numbers, wherein the first digit of areference number indicates the drawing number in which the element isfirst illustrated. The same reference number in different drawingsrefers to the same element.

[0011]FIGS. 1A and 1B are plan views of exemplary scrolling devices, inthe form of a strip, according to at least one aspect of the presentinvention.

[0012]FIG. 2 is a functional block diagram of an exemplary systemincluding a scrolling device, and computer, and interfaces between them,according to at least one aspect of the present invention.

[0013]FIG. 3 is a flow diagram showing exemplary steps that may beperformed to implement step scrolling according to at least one aspectof the present invention.

[0014]FIG. 4 is an exemplary display on a display screen according to atleast one aspect of the present invention.

[0015]FIG. 5 is a flow diagram showing exemplary steps that may beperformed to implement move/no-move detection according to at least oneaspect of the present invention.

[0016]FIG. 6 is a plan view of an exemplary two-dimensional scrollingpad according to at least one aspect of the present invention.

[0017]FIG. 7 is a plan view of an exemplary two-dimensional multi-leggedscrolling pad according to at least one aspect of the present invention.

[0018]FIGS. 8A and 8B are side views of a user's finger in two differentpositions relative to the scrolling device of FIG. 11B, according to atleast one aspect of the present invention.

[0019]FIG. 9 is a flow diagram showing exemplary steps that may beperformed to implement speculative autoscroll according to at least oneaspect of the present invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

[0020] Referring to FIGS. 1A and 1B, a touch-sensitive scrolling device100 may be coupled to a computer 202 (FIG. 2) or another electronicprocessing system such that the position of a pointer (e.g., a humanfinger, a stylus, or other appropriate object) on the scrolling device100 affects the scroll position of a document as shown on an outputdevice such as a display screen 208 (FIG. 2). Throughout thespecification, there will often be references to the user's finger. Suchreference is merely exemplary and will be understood to apply to anytype of pointer.

[0021] Touch-sensitive pads and devices are well-known, such as thetouch pad for cursor control commonly found on many laptop computers.The present scrolling device 100 may take advantage of such knowntechnology and/or be physically configured in any way to create atouch-sensitive device. The scrolling device 100 may be sensitive tohuman touch and/or to non-human touch such as from a pen or stylus-typepointer. The scrolling device 100 also may be utilized without actuallytouching the surface of the scrolling device 100 with the pointer. Forinstance, the scrolling device 100 may be configured to detect thepointer position as it hovers just over the surface of the scrollingdevice 100; such proximity-detection technology is also known. What isimportant is that the scrolling device 100 and/or other device,computer, or interface in combination with the scrolling device 100 beable to determine the position of the pointer relative to the surface ofthe scrolling device 100, either where the pointer is near to ortouching the surface of the scrolling device 100.

[0022] The scrolling device 100 may or may not be physically and/orfunctionally subdivided. Where the scrolling device 100 is subdivided,the scrolling device 100 may have a scrolling region 101 and/or one ormore active regions 102, 103. The active regions 102, 103 may be of anyshape and/or size, and may be physically attached to or separate fromthe scrolling region 101 and/or each other. In another embodiment, thescrolling region 101, the active region 102, and/or the active region103 may be physically the same continuous touch-sensitive surface andonly functionally divided. Thus, although the physical appearance wouldbe one single touch-sensitive surface, different portions of the singlesurface may respond differently. For instance, the middle portion of thesurface may act like the scrolling region 101 and the two end portionsmay act like the active regions 102, 103. In the case where thescrolling device 100 is functionally subdivided into regions, thefunction(s) assigned to one or more of each region may changedynamically depending on the location, timing, direction, and/or otherproperties of the user's gesture. For instance, a particular gesturesuch as double-tapping may cause a particular region to switch from afirst associated function to a second associated function.

[0023] The active regions 102, 103 are preferably disposed at opposingends or end portions of the scrolling region 101, especially where thescrolling region 101 is elongated such as in the form of a strip.However, the active regions 102, 103 may be disposed anywhere proximateto the scrolling region 101. If no active regions 102, 103 exist, thenthe entire scrolling device 100 may be the scrolling region 101. Thelength of the exemplary scrolling region 101 discussed herein has alength D along the longitudinal axis, which may be of any length such asabout one inch, between about one inch and about four inches, or greaterthan about four inches. Preferably, the scrolling region 101 is of alength such that a user could easily move his or her finger from one endof the main scrolling region 101 to the other without having tosignificantly move his or her hand.

[0024] The scrolling device 100 may be of any desired shape and/or size.For example, the scrolling device 100 may be in the shape of a strip,square, rectangle, triangle, wedge, circle, oval, cross, “X”, or anyother desired shape. For one-dimensional scrolling, an elongatedscrolling device 100 and/or scrolling region 101 is preferable but notrequired. Where the scrolling region 101 is elongated, the scrollingregion may be at least twice as long D as it is wide, or at least fourtimes as long D as it is wide, or even more elongated. Fortwo-dimensional scrolling, other shapes may be preferable as will bediscussed later. Moreover, the surface of the scrolling device 100 maybe flat, curved, and/or angular.

[0025] The scrolling device 100 may be a separate device or may beincorporated into another device such as a keyboard, mouse, and/orlaptop computer. In some embodiments, the scrolling device 100 may be onthe side of a keyboard. In other embodiments, the scrolling device 100may be between some of the keys of the keyboard, especially where thekeyboard is a split keyboard. Examples of such embodiments are disclosedin co-pending patent application Ser. no. ______, entitled “TouchSensitive Device for Scrolling a Document on a Display,” attorney docketno. 03797.00124, filed simultaneously with the present application,hereby incorporated by reference as to its entirety, and particularly asto the disclosed exemplary embodiments of touch-sensitive surfaces anddevices. Where the scrolling device 100 is incorporated into a keyboard,the user may be more able to scroll a document without having to removehis or her hand from the keyboard.

[0026] Referring to FIG. 2, the scrolling device 100 may be coupled to acomputer 203 such as a personal computer (e.g., a desktop or laptopcomputer). The scrolling device 100 and computer 203 together form asystem 200. One or more interfaces and/or driving circuitry/software202, 204 may be utilized to provide communication between the scrollingdevice 100 and the computer 203. In the example shown in FIG. 2, each ofthe scrolling device 100 and the computer 203 has its own interface anddriver 202, 204. However, some or all of the interfaces and drivers, ifany, may be located wherever is convenient, such as all within thescrolling device 100, all within the computer 203, or distributedbetween the two.

[0027] The computer 203 may be a desktop computer, laptop computer,mainframe computer, internal or external server, household appliance,automobile computer system, and/or any other device or apparatus thatincludes an electronic processing system. The computer 203 may includeone or more of the following, which may be coupled together, such as viaa bus 209: various other input devices 205 such as a keyboard and/ormouse, a processor 206 such as a microprocessor or central processingunit (CPU), storage 207 such as memory, a hard drive, and/or a diskettedrive, and/or a display screen 208 and/or other output device forviewing a document. The device for viewing the document may include aCRT screen, and LCD screen, a projector, a heads-up display, avirtual-reality goggle display, and/or any other device suitable forviewing the document.

[0028] The term “viewing” or “displaying” a document is used broadlyherein and in the claims: this term encompasses not only visual viewingor displaying but also “viewing” or “displaying” the document audiblyvia, e.g., a voice synthesizer with speaker that speaks words in thedocument according to the presently-scrolled position of the document,or a computerized Braille-generator that generates Braille words in thedocument according to the presently-scrolled position of the document,as might be used by a visually-impaired user.

[0029] Referring to FIG. 4, the display screen 208 and/or other outputdevice may display at least one document 401 that the user of thecomputer 203 may be working on or viewing. The document 401 (which maybe stored in the storage 207, controlled by the processor 206, and/ormodified by various input devices 205) may be any type of document atall, such as a word processing document, a spreadsheet, a drawing, aphotograph or other image, and/or an Internet web page. The document 401may be the displayed output, results, and/or viewable user interfaceassociated with any software and/or hardware-driven application and/oroperating system, such as a control screen, window, or file directory.

[0030] A common feature of many documents is that they are often toolarge to easily view all at once on the display screen 208. Accordingly,it often becomes necessary to scroll through the document 401 on thedisplay screen 208 in order to view various selected portions of thedocument 401. As shown in FIG. 4, the display screen 208 may alsodisplay one or more graphical user interface or indicator (GUI)scrollbars 402, 404 each having GUI “elevators” 403, 405 for controllingand/or indicating the scroll position of the document 401 in thevertical and/or horizontal direction. The display screen may furtherdisplay various GUI tools 406 for controlling and modifying the document401, such as font size, underlining, cut, copy, paste, etc. The items401, 402, 403, 404, 405, 406 on the display screen 208 may be generatedand/or controlled by the processor 206 and/or any other component of thesystem 200, including software and/or an operating system, either aloneor in any combination or subcombination. Also, scrolling of the document401 may be implemented by the processor 206 and/or any other componentof the system 200, including software and/or an operating system, eitheralone or in any combination or subcombination.

[0031] Any touching or proximity of the user's finger to thetouch-sensitive surface of the scrolling device 100 may cause thescrolling device 100 to generate at least one signal indicating thelocation, pressure, speed, acceleration, and/or direction of the finger,and/or which portion of the surface(s) of the scrolling device 100 arebeing touched by the finger. However, for simplicity of description, theremainder of this application assumes that the scrolling device 100 isdesigned to sense touching, rather than a threshold proximity, of thepointer. These signals may be received by the computer 203 and/orinterpreted by the processor 206. Signal generation and processing may,however, occur anywhere within the system 200. For instance, theinterfaces and/or drivers 202 and/or 204 may perform some or all of thesignal generation and/or processing functions. Thus, in response to theuser's finger, one or more signals may be generated by the system 200indicating information about the contact of the finger to the scrollingdevice 100, and such signals may be interpreted and processed by thesystem 200 to provide the various scrolling features described herein.

[0032] Although scrolling as a general concept is known and usedeveryday in personal computers (e.g., by use of a mouse or arrow keys ona keyboard), various new exemplary ways to control scrolling of thedocument 401 using a scrolling device such as the scrolling device 100are described herein.

[0033] The Active Regions

[0034] The active regions (e.g., active region 102) may be configurablein their functions. The active regions may be configured to performdifferent functions when utilized in combination with one or more keyson a keyboard, and/or buttons on a mouse, of the system 200. Forexample, tapping the active region 102 without pressing a key on thekeyboard may cause the document to page up, while tapping the activeregion 102 while holding down the Ctrl key (or another key) may causethe document to jump to the document's limits (e.g., its beginning, end,left edge, or right edge). This may occur even where the user isperforming another gesture that includes the active region 102. Forinstance, if the user is holding the finger down on the active region102, and the Ctrl key is later pushed while the finger is still helddown on the active region 102, then the system 200 may immediatelyrecognize this gesture as requesting the document to be paged in the updirection. Such recognition by the system 200 in this case may occureven before the user removes the finger from the active region 102and/or before the Ctrl key returns to the up position.

[0035] The active regions may further be configurable in their sizes andshapes. As previously mentioned, the active regions (e.g., active region102) may be physically separate from or contiguous with the scrollingregion 101. Where the active regions are physically contiguous with thescrolling region 101, the active regions may be defined not physicallybut functionally by the system 200. For instance, the top (e.g., 10%)and bottom (e.g., 10%) portions of the length of the touch-sensitivesurface of the scrolling device 100 may be defined by the system 200 asbeing the active regions. The size of the portions defining the activeregions may be static or they may be dynamically altered in real time bythe system 200 and/or upon request by the user. The areas of the activeregions may be defined by one or more bounding polygons. This mayprovide for flexibility in assigning regions that are to act as activeregions. For instance, an active region may be defined in a middleportion of the touch-sensitive surface of the scrolling device 100instead of, or in addition to, an end portion. The active regions may bedefined as squares, circles, ovals, rectangles, or any other shape.

[0036] Also, the active regions 102, 103 may be used, in one exemplaryembodiment, as auto-scroll regions. Auto-scrolling is characterized inthat the document 401 may scroll even though the user's finger does notmove along the touch-sensitive surface of the scrolling device 100. Thisdoes not mean that the user could not move his or her finger and thatsuch movement would not also affect scrolling. But certain gestures thatdo not require movement of the finger across the touch-sensitivesurface, such as tapping, holding, and/or applying pressure, maynevertheless cause the document 401 to scroll.

[0037] For example, responsive to the user initiating finger contactwith one of the active regions 102, 103, the system 200 may determinewhich of the active regions are contacted and cause the document 401 toautomatically scroll in different directions, such as up or down (and/orleft or right), depending upon which active region is contacted. Forinstance, where the active region 102 is contacted, the document 401 mayin response scroll up, and where the active region 103 is contacted, thedocument 401 may in response scroll down. Automatic scrolling may startfollowing a short delay after the finger contact is initiated with oneof the active regions 102, 103. However, a delay is not required. Wherethe auto-scroll regions embodied as portions of the scrolling region101, auto-scrolling may occur in response to the user's finger remainingsubstantially still relative to the scrolling region 101, but not ifthere is movement. This may reduce the possibility that auto-scrollingwould be initiated where the user starts a stroke on the scrollingdevice 100 within the auto-scrolling regions, hence allowing for theauto-scrolling and relative scrolling modes to better share the physicalreal estate of the scrolling strip. Scrolling may continue until, forexample, the user lifts the finger off the active region or otherportion of the touch-sensitive surface that has been touched.Alternatively, the document 401 may continue to scroll even after thefinger has been lifted, but may stop scrolling instead responsive to thefinger tapping or otherwise touching the touch-sensitive surface again.

[0038] Further, where the user slides his or her finger toward an end ofthe scrolling region 101, if the user continues to hold his or herfinger at the end (without substantial movement), then following anoptional short delay (e.g., approximately 500 ms), the document 401 maycontinue to scroll in the same direction that it was previouslyscrolling in response to the finger movement that led to the fingerreaching the end of the scrolling region 101.

[0039] Speed-Sensitive Acceleration

[0040] In one exemplary embodiment, an acceleration component may beapplied to the amount of scrolling depending upon how fast the usermoves his or her finger along length D. For the following equations, itwill be assumed that the scrolled position of a document 401 on thedisplay screen 208 is expressed as y. The amount that the document 401is scrolled is expressed as dy, which may be in units of pixels, textlines, millimeters, centimeters, inches, or any other measurement unit.The position of the finger on the touch-sensitive surface of thescrolling device 100 may be continuous or sampled. Where the position issampled, the sampled position of the finger for sample number i isexpressed in the equations as Y_(i). The amount of scrolling dy may becalculated as an exponential transformation of (Y_(i)−Y_(i−1)), thedistance between current and previous finger position samples on thescrolling strip 100. The document may then be scrolled by the amount dycorresponding to the current sample. Such scrolling may thereafter berepeated for each new sample. Thus, the speed of scrolling of thedocument 401 on the display 208 would be non-proportional to the speedof the finger moving along the scrolling region 101 along the length D.For instance, the following transformation may be applied:

dy=K ₁(Y _(i) −Y _(i−1))(e ^(1+K) ^(₂) ^((Y) ^(_(i)) ^(−Y) ^(_(i−1)) ⁾−e+1)  (1)

[0041] This transformation can be beneficial by allowing precise, slowscrolling at low speeds (“micro-scrolling”), and rapid scrolling acrosslonger distances when moving quickly (“macro-scrolling”). Thus, thistransformation enhances the performance of both micro-scrolling andmacro-scrolling. The units of dy are determined by the units of K₁.Thus, where K₁ is in units of pixels, then the value dy indicates theamount of pixels for the document 401 to scroll on the display screen208. Where K₁ is in centimeters, the value dy indicates the number ofcentimeters for the document to scroll. Where K₁ is in text lines, thevalue dy indicates the number of text lines for the document to scroll.The value dy may be multiplied by a gain factor depending upon suchthings as user-selected preferences, the particular software applicationbeing used to manipulate/edit the document 401, the zoom factor of thedocument 401, and/or the type of the document 401 (e.g., wordprocessing, web page, drawing, etc.).

[0042] Preferably, a scrolling speed threshold is not used. A continuousvariable gain may be applied depending upon how quickly the user'sfinger is moving across the scrolling region 101 of the scrolling device100′ In a preferred embodiment, Y_(i) and Y_(i−1) are measured asfractional distances per sample of the length of the scrolling region101. For instance, (Y_(i)−Y_(i−1))=0.0 indicates no movement betweensample i and sample i−1; (Y_(i)−Y_(i−1)) 0.1 may indicate movementacross 10% of the total length of the scrolling region 101 (or apredetermined portion thereof) between sample i and sample i−1; and(Y_(i)−Y_(i−1))=1.0 may indicate movement across the entire length D ofthe scrolling region 101 (or the predetermined portion thereof) betweensample i and sample i−1. In such an embodiment, it has been found thatthe following approximate values work well: K₁=367.879*(sampling rate inHz/20 Hz) and K₂=5.7546*(sampling rate in Hz/20 Hz). In other words, K,may equal approximately 18.3940 times the sampling rate in Hz, and K₂may equal approximately 0.28773 times the sampling rate in Hz. Forexample, at a sampling rate at 20 Hz, when the user has moved 1% of thelength of the scrolling region 101 during one sample (which would betypical of slow, controlled movement), equation (1) becomes:

dy=367.879*0.01*(e{circumflex over ( )}(1+5.7546*0.01)−e+1)  (2)

dy=4.27  (3)

[0043] As another example, where the sampling rate is 50 Hz, again withmovement of 1% of the scrolling region 101 length during a singlesample, this would mean that the movement along the scrolling region 101was faster than in the above example with a 20 Hz sampling rate. Usingthe same K₁ and K₂ values, equation (1) becomes:

dy=919.698*0.01*(e{circumflex over ( )}(1+14.387*0.01)−e+1)  (4)

dy=13.065  (5)

[0044] To implement the above scrolling feature, the system 200 maygenerate one or more signals indicating the measured locations T_(i) andT_(i−1) (and/or the difference between the locations) on the scrollingregion 101, and such signals may be processed by the system 200 toimplement the algorithm of equation (1). Each measurement may be asample in time, and the system 200 may also take sampling rate intoaccount.

[0045] Rounding to Whole Lines

[0046] The amount of scrolling may be rounded to a whole integer numberof lines, pages, paragraphs, and/or other portions of the document 401.Such rounding may be performed in conjunction with any of the scrollingmodes available to the system 200. In one exemplary embodiment, at leasttwo different current scrolling positions are computed and/or stored.The first scrolling position, which will be called herein the “actualscroll position,” is the position on the screen that the viewed document401 is scrolled to. The actual scroll position reflects a whole integernumber of lines and/or pages of scrolling. The second scrollingposition, which will be called herein the “virtual scroll position,”keeps track of a higher-resolution scroll position within the document401. The virtual scroll position preferably is not rounded to a wholeinteger numbers of lines or pages. For instance, where the virtualscroll position may be a measured distance corresponding to 3.23 lines,the actual scroll position may be rounded down to 3 lines exactly or upto 4 lines exactly. Or, where the virtual scroll position may be ameasured distance corresponding to 4.56 pages, the actual scrollposition may be rounded up to 5 pages exactly or down to 4 pagesexactly.

[0047] Thus, the virtual and actual scroll positions do not need to bein the same units as each other; for instance, the virtual scrollposition may be in inches and the actual scroll position may be storedas the number of text lines and/or as a distance with a knowncorrelation between distance and number of text lines (e.g., it may beknown for a particular document that text lines occur every 0.326inches). Also, the virtual and actual scroll positions may be measuredas absolute positions, such as measured relative to the top or bottom ofthe document 401, and/or as relative positions, such as measured fromthe last scroll position.

[0048] The term “rounding” as used herein includes actual conventionalrounding (e.g., 5.2 is rounded to 5.0 and 5.6 is rounded to 6.0) as wellas truncation (e.g., 5.x is truncated to 5.0, regardless of the value ofx), and/or any other way of reducing the numerical resolution of theactual scroll position. For instance, where the actual scroll positionis 3.67 inches, the virtual scroll position may be “rounded” by reducingthe numerical resolution of 3.67 centimeters to any of the following:3.6 centimeters or 3.7 centimeters (where the desired “rounded”resolution is tenths of a centimeter), or 3 centimeters or 4 centimeters(where the desired “rounded” resolution is centimeters).

[0049] An exemplary flow diagram showing how such “rounded” scrollingmay be implemented is shown in FIG. 3. The user's gesture is received asan input, thereby generating a scroll command (step 301). A “gesture”may be any touching, sliding, holding or releasing of the finger (or anycombination or subcombination thereof) against or from thetouch-sensitive surface of the scrolling device 100. For instance, theuser may perform a gesture by moving his or her finger down quicklyalong the surface of the scrolling device 100, such that the scrollingdevice 100, computer 203, and/or interface(s) 202, 204 attached theretogenerates an associated scroll command indicating a downward scroll by aparticular amount and/or at a particular speed. The scroll command isconverted into a virtual scrolling position, preferably with as muchprecision as practical (step 302). A prior virtual scrolling positionmay already be stored (for instance, in the storage 207), in which casea new virtual scrolling position would be calculated by updating the oldvirtual scrolling position with the scrolling command. For instance, ifthe old virtual scrolling position is at point A (e.g., 3.72 inches fromthe top of the document), and the scroll command indicates virtualdownward scrolling by a certain amount, then the new calculated virtualscrolling position at point B (e.g., 6.31 inches down from the top ofthe document 401) be calculated by determining the change (in thisexample, a downward change of 2.59 inches) in the old virtual scrollingposition as a result of applying the scroll command. Of course, virtualand actual scrolling positions may be determine and stored in any formatand using any measurement, such as distance, number of lines, number ofpages, number of paragraphs, etc.

[0050] It is possible that the new virtual scrolling position may beout-of-bounds, such as off the edge of the document or outside of someother defined or arbitrary boundary (e.g., scrolling might be limited toremaining within a particular portion of the document). Thus, a check ispreferably made to ensure that the virtual scrolling position is notout-of-bounds (step 303). If it is, then the virtual scrolling positionis adjusted to be within the permitted boundary (step 304).

[0051] The actual scroll position is computed by converting the units ofthe virtual scroll position if necessary and rounding the virtualscrolling position to the desired lower resolution such as whole unitsof document pages or text lines (step 305), and the document 401 asviewed on the display screen 208 may then be scrolled to the actualscrolling position (step 306). In this example, the actual scrollingposition may be 6.31 inches rounded to the nearest line, inch (e.g., 6inches), page, and/or other desired standard. Calculating the actualscrolling position each time based on the updated virtual scrollingposition allows subtle changes of the user's input to add up over time(accumulating in the virtual scroll position), which may eventuallyaffect the (more coarse, i.e., lower resolution) actual scrollingposition in terms of whole lines or pages of scrolling visible on thescreen.

[0052] Some or all of the steps described in connection with FIG. 3 maybe performed serially or in parallel, may be combined as single steps,may be further subdivided into additional sub-steps, and/or may becombined with other steps from other aspects and embodiments of thepresent invention such as those described in connection with FIG. 5.

[0053] Moving/Not Moving Detection

[0054] When scrolling, it may be desirable to ignore very small fingermotions in certain circumstances. For instance, it may be desirable toignore unintentional small movement by the user's finger on thetouch-sensitive surface of the scrolling device 100. This is beneficialwhere, for instance, a user cannot control his or her finger to beabsolutely still when holding the finger in one place on thetouch-sensitive surface. This may also prevent the document 401 from“swimming,” or appearing to move slightly on the display screen, due tosmall variations in the sensor readings and/or twitching of the user'sfinger. When the user's finger is in contact with the surface of thescrolling device 100, the system may infer whether or not the user isintentionally moving his or her finger across the surface of thescrolling device 100 by use of a combination of different movementthresholds. The decision as to whether the user is intentionally movingthe finger may be used as a building block for several other featuresand recognized gestures, such as gestures that may freeze scrollingand/or the onset of an auto-scrolling mode in some situations.

[0055]FIG. 5 shows an exemplary flow diagram of how moving/not movingdetection may be implemented. When the user first touches thetouch-sensitive surface of the scrolling device 100, as detected in step500, the user's finger position is considered to be not moving on thescrolling device 100. The state of not moving may be an initialcondition. The state of moving or not moving may be stored as a flag orusing any other method to effectuate a “moving” or “not moving” state.If it is determined that the finger movement does not exceed a firstthreshold distance and/or speed within an optional first timeout period(steps 501 and 502), then the finger is still considered to be notmoving on the scrolling device 100, and the determination of whether thefirst threshold is continued. On the other hand, where the finger motionexceeds the first threshold within the first timeout period, the fingeris then considered to be moving (the “moving” state), and a flag may beset accordingly (step 503). This flag may be stored, such as in thestorage 207. The first threshold, when defined as a distance, may bedefined as a set length (e.g., millimeters or inches), set speed (e.g.,millimeters per second), set percentage of the scrolling region 101length D, or any combination or subcombination of these. In oneexemplary embodiment, the first threshold may be set at approximately 1%of the length D of the scrolling region 101. The system continues toconsider the finger as moving until a second timeout expires (step 504)during which total movement of the finger is less than a secondthreshold distance and/or speed (step 505).

[0056] In exemplary embodiments, the first and second timeouts may bethe same or they may be different. For instance, the second timeout maybe approximately twice the first timeout (e.g., the first timeout may bebe approximately 200 milliseconds and the second timeout may beapproximately 400 milliseconds). In still further embodiments, thesecond threshold may be approximately 0.5% of the length D of thescrolling device 100. Although it is preferable that the secondthreshold be smaller than the first threshold, the second threshold maybe identical to the first threshold or even larger than the firstthreshold. If the finger movement is less than the second threshold, thefinger once again is considered to be not moving (the “not moving”state), and a flag may be set accordingly (step 506). If the fingermovement exceeds the second threshold, then the finger is stillconsidered to be moving, and the process continues with another delaybeing timed at step 504. Some or all of the steps described inconnection with FIG. 5 may be performed serially or in parallel, may becombined as single steps, and/or may be further subdivided intoadditional sub-steps.

[0057] In one exemplary embodiment, finger contact with thetouch-sensitive surface of the scrolling device 100 does not cause anyscrolling until the “moving” state is attained. From then on, motions ofthe user's finger may cause the document to scroll, until the “notmoving” state is attained, at which point scrolling may be locked to itscurrent position until the “moving” state resumes.

[0058] Dealing With Lift-Off

[0059] Sometimes when the user removes his or her finger from thetouch-sensitive surface of the scrolling device 100 (otherwise knownherein as “lift-off” or “release”), the user's finger mayunintentionally affect or disturb the current scroll position. Theeffects of this can be reduced by maintaining a FIFO (first-in,first-out) queue of recent finger positions. The FIFO queue may bestored by the system 200, such as in the storage 207 and/or in memory ofthe scrolling device 100 itself When the user breaks contact with thetouch-sensitive surface of the scrolling device 100, the system 200 maysearch back through the queue to look for a sample where the scrollingmotion came to a definite (or near) stop. If such a sample is found, thescroll position may be adjusted to occur at that stop point. Thus, whereit appears that the user's intent was to stop, then the scroll positionwould be adjusted according to the user's apparent intent.

[0060] On the other hand, if no such sample is found in the queue thatindicates an intended stop, or if the amount (distance) of thecorrection is larger than a threshold amount (measured by distanceand/or percentage of the length scrolling region 101), then the scrollposition may be not adjusted. The reason for rejecting a largecorrection is this indicates that the user probably was moving his orher finger relatively quickly when the user let go of thetouch-sensitive surface of the scrolling device 100. This is not anuncommon phenomenon as the resistance or drag of the finger may beexpected to be naturally reduced during the lift-off process.Accordingly, not changing the scroll position in such a circumstancewould likely be beneficial because the user intends rapid motion, andundoing that motion would counter the user's intent.

[0061] Absolute Scrolling

[0062] In another exemplary embodiment, an absolute scrolling mode maybe invoked, either by default, by decision of the system 200, and/or byuser request such as through a particular gesture on the scrollingdevice 100. The absolute scrolling mode establishes a one-to-one, orproportional, correspondence between the scrolling region 101 (or someportion thereof) and the scrolled position of the document 401 as viewedon the display screen 208 and/or other output device. For example, saythat absolute scrolling mode is invoked; if the user's finger is locatedin the middle of the length of the scrolling region 101 (or the relevantportion thereof), then the document 401 may in response be scrolled tothe middle of the document 401. Or, where the user's finger is located25% from the top of the scrolling region 101 (or the relevant portionthereof), the document 401 may in response be scrolled to the portion ofthe document 401 that is 25% from the top of the document 401. Thus, thetop of the document 401 may correspond to one end of the scrollingregion 101 (or the relevant portion thereof) and the bottom of thedocument 401 may correspond to the other end of the scrolling region 101(or the relevant portion thereof). Further, absolute scrolling mode mayprovide access to only a portion of the document 401, such that one endof the scrolling region 101 (or portion thereof) corresponds to a firstlocation in the document 401, and the other end of the scrolling region101 (or portion thereof) corresponds to a second different location inthe document 401, wherein the first and second locations may or may notbe the ends of the document 401.

[0063] The user may invoke the absolute scrolling mode (or any othermode or function) in one or more of a variety of ways. For instance,absolute scrolling mode may be invoked by a gesture such astapping-and-holding, double-tapping-and-holding, double-tapping thentapping and holding, or applying more finger pressure than usual for aminimum threshold amount of time, to the scrolling portion 101. Changingscroll modes in response to a gesture on the scrolling device 100 can bebeneficial in that the user may not need to move his or her hand fromthe touch-sensitive surface of the scrolling device 100 in order toinvoke a scrolling mode. In one embodiment, such a gesture may beperformed anywhere on the touch-sensitive surface of the scrollingdevice 100, such as at a center portion between the two ends of thetouch-sensitive surface. Alternatively, absolute scrolling mode (or anyother mode or function) may be invoked by the user pressing a key orbutton spaced proximate to the touch-sensitive surface of the scrollingdevice 100 or on a keyboard. When the touch-sensitive surface of thescrolling device 100 is disposed at or near the left side of thekeyboard, the Ctrl key (for example) is particularly well suited toactivate absolute scrolling as the left-hand thumb can hold the Ctrl keywhile another finger of the same hand touches the strip. In general, itmay be desirable to use a key to activate absolute scrolling (or anyother feature or mode of the scrolling device 100) that is reachablesimultaneously by the same hand that is touching the touch-sensitivesurface of the scrolling device 100. Other exemplary keys that may beused for activating automatic scrolling (or other features or modes ofthe scrolling device 100) are the Tab or Esc keys (where thetouch-sensitive surface of the scrolling device 100 is near the leftside of the keyboard), the space bar, the Shift keys, or the Alt keys.

[0064] Of course, absolute scrolling mode may be automatically invokedby the system 200 and/or be set as the default scrolling mode. In oneexemplary embodiment, the system 200 may compare the gesture with one ormore stored gestures to determine whether the gesture is the correctgesture to invoke a mode change. In response to the gesture beingcorrect, the system 200 may change modes, such as into absolutescrolling mode or auto-scroll mode.

[0065] At the time that the absolute scrolling mode is invoked, thesystem 200 may in response (1) scroll, jump, or otherwise move thedocument 401 to the absolute scrolled position corresponding to thelocation on which the user's finger invoked absolute scrolling mode onthe scrolling device 100, and/or then (2) remain in the absolutescrolling mode for as long as the user maintains contact withtouch-sensitive surface of the scrolling device 100. While in theabsolute scrolling mode, the document 401 may behave much like it wouldif the user were to click and drag the elevator(s) 403, 405 of thescrollbar(s) 402, 404 up or down (or left or right). The user may exitthe absolute scrolling mode by any desirable technique such as breakingfinger contact with the surface of the scrolling strip 100.Alternatively, the user may have to perform an affirmative act such astapping or double-tapping the scrolling strip 100 to terminate theabsolute scrolling mode. After terminating the absolute mode, the system200 may revert to its “default” mode, which may be some other mode ofscrolling.

[0066] Auto-Scrolling Based on Finger Position

[0067] If the user touches and holds his or her finger anywhere on thescrolling region 101 without moving (such as on a central portionbetween the two ends of the scrolling region 101), then auto-scrollingmode may also be invoked after an optional short delay. In such anembodiment, subsequent motions of the finger may thereafter cause thedocument 401 to scroll at a rate depending upon the distance between theinitial contact point and the user's current position, and/or dependingupon the absolute location of the finger on the scrolling region 101.The rate may be proportional to the distance and/or location, and/or mayhave a linear or nonlinear dependence on the distance and/or location ofthe finger. Because in certain embodiment the location of the touchdetermines the rate of auto-scrolling, the user may be able to moreaccurately control (and dynamically adjust on the fly) the scrollingrate.

[0068] In operation, for instance, where the user's finger touches andholds the finger at point A on the scrolling region 101, and then slidesthe finger across at least some of the length of the scrolling region101 in a first direction to point B, the document 401 may automaticallyscroll, and continue to scroll, in a first direction at a rate dependingupon the distance between point A and point B. If the user instead hadslid the finger to point C on the scrolling region 101, wherein point Cis in an opposite direction than point B relative to point A, then thedocument 401 may automatically scroll, and continue to scroll, in asecond opposite direction at a rate depending upon the distance betweenpoint A and point C. Of course, the user may continue to slide thefinger in order to dynamically adjust the rate of automatic scrolling asdesired. Upon the user releasing the finger, the automatic scrolling maycease. As another example, the automatic scrolling rate may depend uponthe absolute finger location on the scrolling region 101, such thatwhere the finger is located approximately in the middle of the scrollingregion 101, the scrolling rate may be zero, and when the finger islocated away from the middle, the automatic scrolling rate may increasewith increasing distance from the middle. Any portion of the scrollingregion 101 (not just the middle) may be used as a reference from whichto measure the absolute position of the finger for purposes of automaticscrolling rate determination.

[0069] Auto-Scrolling Rate Determination, Such as Based on FingerPressure or Contact Area

[0070] Many different functions for mapping the rate of scrolling to theuser's input are possible. For example, the system may use a fixed rateof scrolling and/or a variable rate of scrolling based on variousfactors such as finger speed, finger pressure/contact area, length ofhold, number of taps, and/or frequency of taps. If a fixed rate ofscrolling is used, the fixed rate may have a default value, may beuser-selectable, and/or may be selectable by the software applicationthat is manipulating/editing the document 401. A variable rate ofscrolling may allow the user to continuously adjust the scrolling rateas he or she scans through the document. The capability to continuouslyadjust the scrolling rate may provide a more controllable andpredictable scroll interface.

[0071] In one exemplary embodiment, a variable rate of scrolling may beused based upon finger pressure against the touch-sensitive surface ofthe scrolling device 100. Finger pressure may be measured directlyand/or be a function of measured finger contact area upon thetouch-sensitive surface of the scrolling device 100. In such anembodiment, an algorithm may be used that normalizes for the amount offinger contact on the current scrolling action and/or performs anexponential transformation of the finger contact area to provide acontrollable range of scrolling speeds between slow and fast scrolling.The scrolling rate may be calculated in two steps. For instance, foreach sample of finger pressure on the touch-sensitive surface of thescrolling device 100, the following variable P may first be calculated:

P=K ₃(p/p ₀)−1),  (6),

[0072] where P is the normalized pressure estimate based on contactarea, K₃ is a gain factor, p is the current pressure reading, and p₀ isthe pressure chosen for the minimum-rate point described below.

[0073] Next, the result of equation (6) may be used to calculate therate of scrolling for the current sampled finger pressure:

dy/dt=K ₄(e ^((P+1)) −e+1)  (7)

[0074] where K₄ is a gain factor and dy/dt is the resulting calculatedrate of scrolling (t represents time). Thus, using such an equation, therate of scrolling of the document is a nonlinear function of the fingercontact area and/or pressure. If dy/dt is less than zero, then dy/dt maybe set to zero. Further, if dy/dt is greater than a threshold, dy/dt maybe set to that threshold. When the scrolling rate dy/dt is applied tothe scrolling of the document, a positive value of dy/dt may be used forscrolling down (for instance), and to scroll up dy/dt may be multipliedby minus-one.

[0075] In some exemplary embodiments, the system 200 may determine whichof the regions 102, 103 are being touched, and different values of thegain factors K₃ and/or K₄ may be used for auto-scrolling in opposingdirections depending upon which active region 102, 103 is being touched.For instance, the auto-scrolling up and the auto-scrolling down regions(e.g., regions 102 and 103, respectively) may be associated withdifferent gain factors K₃ and/or K₄. Depending upon the particular shapeof the touch-sensitive surface of the scrolling device 100, the shape ofany bezel or other divider that may separate the scrolling region 101from the auto-scrolling regions, and whether auto-scrolling occurs inregions physically separate from the scrolling region 101, differentamounts of contact between the user's finger and the auto-scrolling upregions than the auto-scrolling down region may occur. For instance,referring to FIGS. 8A and 8B, the user's finger 801 may, during normaluse of the scrolling strip 100, be expected to be at a slightlydifferent angle when contacting the active region 102 than whencontacting the active region 103. This causes the amount of surfacecontact to be greater when the finger is extended (FIG. 8B) than whenthe finger is curled (FIG. 8A). Accordingly, the values of the gainsfactors K₃ and/or K₄ may be set to compensate for this difference suchthat up auto-scrolling and down auto-scrolling have a similar feel andresponse as compared to each other. Gain factor K₄ is in units ofscrolling speed, such as pixels per second, centimeters per second, ortext lines per second. The value dy/dt will also have the same units asK₄.

[0076] The choice of an appropriate value for the p₀ minimum-rate pointcan be important. Several ways of determining the value of p₀ arepossible, but preferably the dynamics of the current user gesture itselfare used to determine a value of p₀ in real time as the user isattempting to specify a rate of scrolling. For instance, the fingerpressure against the touch-sensitive surface of the scrolling device 100for the minimum rate point may be sampled following an optional delayafter initial contact. The delay should be long enough for the user toestablish firm initial contact with the touch-sensitive surface, such asabout 200 milliseconds. During this delay, the current value of thefinger pressure may be continuously measured and used as a preliminaryestimate for p₀, so that the user may start scrolling with minimalperceptible delay.

[0077] A maximum threshold on the rate of scrolling may alternatively oradditionally be imposed. Also, a sliding window may be used thatrepresents the range of anticipated future pressure values p, which maybe based on one or more previous pressure values p. Where thecomputation of dy/dt as shown above results in a rate larger than themaximum threshold, the value for p₀ may be recomputed by sliding thewindow upward in pressure values such that the current pressure value pwould result in the maximum threshold rate of scrolling. On the otherhand, if the finger pressure falls below the bottom of the window, thevalue of p₀ may be recomputed by sliding the window downward. The knownrange of pressure values that may be sensed by the scrolling device 100may be used as a basis for choosing initial default minimum and maximumpressures of the window. The rate limits and/or pressure maximumcriteria described below may be used in such a sliding-window strategy.In some embodiments, such a sliding-window technique allows the system200 to automatically self-calibrate for different users where some havea heavy touch or large fingers as compared to other users who have alight touch or smaller fingers.

[0078] Rate limits may be utilized to improve the selection of the p₀minimum-rate point. A maximum and/or minimum rate of movement may beimposed on the above equations such that if a rate limit is exceeded,the p₀ minimum-rate point is recalculated to satisfy the limit. This mayhave the effect of adapting the sensed pressures to the user's gestureand typical reading speeds. Also, because most touch-sensitive padsactually sense finger contact area in order to determine fingerpressure, there is often a practical limit on how much “pressure” can beapplied. Knowledge of typical such maximum pressure values can be usedto help choose the p₀ minimum-rate point. For example, if the userstarts by pressing hard against the touch-sensitive surface of thescrolling device 100, then the document 401 may immediately scrollquickly where the system 200 knows that the user will not be able tofurther increase the contact area.

[0079] In some embodiments, the pressure maximum or the parameters inthe above equations may differ for the active regions 102, 103, sincethe typical contact area of the user's finger with different regions indifferent locations may be expected to vary. In other words, the scrollrates in different directions may be different per unit of fingerpressure applied to the touch-sensitive surface of the scrolling device100. Adjustments to the parameters depending upon the area touched onthe touch-sensitive surface of the scrolling device 100 may make thepressure response appear more consistent.

[0080] Speculative Autoscroll

[0081] In an exemplary embodiment, one or more of the active regions(e.g., active region 102) are physically contiguous with the scrollingregion 101, or the divisions between the active regions and thescrolling region 101 are small. In such an embodiment, the activeregions may have a plurality of functions depending upon how they areused. For example, the active region 102 may be flexibly used both asautoscrolling regions, as portions of the main scrolling region 101, andas a page up, down, left, or right region. Providing the active region102 with a flexible plural functionality can be useful where the activeregion 102 is not physically separate from the scrolling region 101.Otherwise, for example, accidental activation of autoscrolling mayfrequently occur when the user's finger reaches an end of the scrollingregion 101.

[0082] It may thus be desirable to provide different ways to activatethe various functions of the active regions. For example, a user may berequired to tap and then hold the finger down on an active region 102for a minimum amount of time in order to activate autoscrolling. But ifthe user were instead to slide the finger along the scrolling region 101into the active region 102, or slide the finger from the active region102 into the scrolling region 101, then other scrolling (e.g., absolutescrolling) may be performed as already discussed herein. An example ofsuch an embodiment is illustrated in FIG. 9. The system 200 may detectthat the user's finger has touched the active region 102 (step 901). Inresponse, the system 200 may start a timer to measure the amount of timethat the user's finger is touching the active region 102 (step 902). Ata first timeout (e.g., 200 milliseconds), the system 200 may determinewhether the active region 102 is still being continuously touched (step903). If not, then the touch was relatively short and is interpreted asa tap (step 904). In such a case, autoscrolling would not be activatedsince the user did not intend autoscrolling. The tap may be interpretedas a particular function, such as a page up/down/left/right button.Thus, by tapping the active region 102, the document 401 may experiencea page-up. Also, if the touch in the active region 102 was shorter thanthe first timeout, but instead of removing the finger, the finger slidto another region such as the scrolling region 101, then the system 200may not recognize the tap command. This may be true even where thefinger re-enters (by sliding) into the active region 102.

[0083] On the other hand, if the finger is still continuously touchingthe active region 102 at the expiration of the first timeout, then thesystem 200 may speculate that the user will continue to hold. The system200 may thus immediately (or after a delay such as approximately anadditional 200 milliseconds) begin autoscrolling the document (step905). By speculating in this way, the system 200 is able to provide aquick response the user's gesture; the response of the system 200 mayappear nearly instantaneous to the user.

[0084] The system 200 may continue to autoscroll while waiting until theexpiration of a second longer timeout (e.g., approximately 700milliseconds). The system may determine whether the finger has stillcontinuously touching the active region 102 at the expiration of thesecond timeout (step 906).

[0085] If the finger is still continuously touching the active region102 at the expiration of the second timeout, then the system 200 guessedcorrectly and may continue to autoscroll the document 401 until thefinger is released from the active region 102. On the other hand, if thefinger is not still touching the active region 102, then the system 200guessed incorrectly. But no harm has been done. The system 200 maycorrect the incorrect guess by undoing the amount of autoscrolling thathas occurred (e.g., the amount of scrolling that accumulated between thefirst and second timeouts) (step 907). They system 200 may furtherperform the correct requested function that would have been performed bytapping the active region 102. In this example, the system 200 wouldundo the autoscrolling that already occurred and then page the document401. Alternatively, the system 200 may save time by scrolling thedocument by a single amount to account for the incorrect autoscrollingand for the intended paging (e.g., by scrolling by the difference in thepaging amount and the unintended autoscrolling amount). The effect wouldbe the same: to position the document 401 where the user intended it tobe positioned.

[0086] Once autoscrolling has begun, if the user's finger slides out ofthe active region 102 and into the scrolling region 101, then scrollingper the scrolling region 101 (e.g., absolute or relative scrolling) maybe activated. If the finger then slide back into the active region 102,autoscrolling may again be activated. A reason for this is that the usermay unintentionally move the finger away from the active region 102while varying finger pressure (i.e., finger contact area) during theautoscrolling gesture.

[0087] The timeouts used for speculative autoscroll are exemplary, andother values may be used. For example, the first timeout may beuser-definable, and/or may be between 0 milliseconds and the secondtimeout, inclusive. Also, speculative autoscroll may be utilized withany configuration of scrolling device 100, and not just one that hasphysically contiguous autoscroll regions.

[0088] Horizontal/Diagonal Scrolling and Panning

[0089] Although many of the exemplary embodiments have been describedherein primarily in relation to a single axis scrolling strip-shapedscrolling device 100 for vertical scrolling of the document 401, thesame aspects and concepts of the invention may be applied to ahorizontal scrolling strip, a two-dimensional “scrolling pad” (whichprovides both vertical and horizontal scrolling, and may further combinethe two to provide diagonal scrolling/panning) such as shown in FIG. 6,and/or a multi-leg scrolling surface that may be, e.g., in the shape ofa plus or cross as shown in FIG. 7 for providing two-dimensionalscrolling along a respective leg. As such, the term “scrolling” as hasbeen used herein includes both one-dimensional scrolling as well astwo-dimensional scrolling and panning.

[0090] On a two-dimensional scrolling pad, mapping of scrolling motionmay give more or less priority to motions that are along a primary axisdepending upon user-selectable options and/or the currently runningsoftware application that is manipulating/editing the document 401. Insome embodiments, such as where scrolling text documents having a widthequal to or less than the width of the display screen 208, only theprimary axis of motion is considered (thus diagonal movement isprohibited). In other embodiments, such as where scrolling spreadsheetdocuments, a small dead-band is provided for small motions whichdiscourages small diagonal motions. In still other embodiments, such aswhere scrolling images, motion in any and all directions (includingdiagonal motion) is allowed without restriction. Two-dimensionalscrolling devices, such as the one illustrated in FIG. 7, may have oneor more scrolling regions 700 and/or active regions 701, 702, 707, 703,functioning in the same way as the scrolling region 101 and activeregions 102, 103 described above. Also, two-dimensional scrollingdevices such as those illustrated in FIGS. 6 and 7 may have lengths d₁and d₂, which may be treated as the length D (described earlier for thescrolling device 100) for each respective dimension.

[0091] In some embodiments, full or limited horizontal scrollingfeatures are provided by the scrolling device 100. For instance, thescrolling device may have a combination horizontal and verticalscrolling strip (such as in FIG. 7), or a vertical scrolling strip withseparate active regions (e.g., for automatic up, down, left, and rightscrolling, respectively). The left-scroll and right-scroll activeregions (e.g., active regions 702 and 704, respectively) may be similarin operation to the up-scroll and down-scroll active regions (e.g.,active regions 701 and 703, respectively) and/or may support similaroptions such as tapping to page the document 401 left or right, orpressing and holding to auto-scroll the document 401 left or right.

[0092] While exemplary systems and methods embodying the presentinvention are shown by way of example, it will be understood, of course,that the invention is not limited to these embodiments. Modificationsmay be made by those skilled in the art, particularly in light of theforegoing teachings. For example, each of the elements of theaforementioned embodiments may be utilized alone or in combination withelements of the other embodiments.

[0093] Also, the same touch-sensitive surface of the scrolling device100 may be used to support any combination or subcombination of thevarious different scrolling modes and features described herein. Thus,more than one type of scrolling mode and/or feature may be used with thesame scrolling device 100 surface.

[0094] Further, although certain exemplary gestures (e.g., tap-and-hold,or double-tap) have been described as ways of implementing or invokingcertain features and scrolling modes, any desired gesture may be used toimplement or invoke any feature and/or scrolling mode in any combinationor subcombination. Any known method of gesture detection may be used inconjunction with the various features and scrolling modes used with thescrolling device 100.

What is claimed is:
 1. A method for scrolling a document, comprising thestep of scrolling a document at a rate based on a pressure of a pointeron a touch-sensitive surface, such that the rate of scrolling of thedocument is a non-linear function of the pressure.
 2. The method ofclaim 1, further comprising the steps of: determining a current pressurep of the pointer on the touch-sensitive surface; and determining ascroll rate dy/dt for the document according to the following algorithm:dy/dt=K ₄(e ^((P+1)) −e+1) wherein P=K₃((p/p₀)−1), K₃ is a first gainfactor, K₄ is a second gain factor, and p₀ is a predetermined pressurevalue.
 3. The method of claim 2, wherein the touch-sensitive surfacecomprises a first portion and a second portion, further including thesteps of: determining which of the first and second portion is beingtouched by the pointer; and selecting the first and second gain factorsbased on said step of determining, wherein the first and second gainfactors are selected to be different when the first portion is touchedby the pointer as compared with the second portion.
 4. The method ofclaim 3, wherein the first and second portions are physically separateportions.
 5. A system for scrolling a document, comprising: atouch-sensitive device having a first surface portion and a secondsurface portion, the touch-sensitive device configured to generate atleast one signal indicating which of the first and second surfaceportions is being touched by a pointer; and a processor coupled to thetouch-sensitive device, the processor configured to receive the at leastone signal and to scroll the document in a first direction responsive tothe first portion being touched by the pointer, and a different seconddirection responsive to the second portion being touched by the pointer.6. The system of claim 5, wherein the first surface portion isphysically separate from the second surface portion.
 7. The system ofclaim 5, wherein the processor is configured to scroll the document at arate depending upon a pressure of the pointer against thetouch-sensitive device.
 8. The system of claim 5, wherein the processoris configured to scroll the document at a different rate dependingwhether the first or second surface portion is being touched by thepointer.
 9. The system of claim 5, wherein the processor is configuredto scroll the document even while the pointer does not move along eitherof the first and second surface portions.
 10. The system of claim 9,wherein the processor is further configured to continue to scroll thedocument until the pointer is released from the first or second surfacethat is being touched by the pointer.
 11. The system of claim 5, whereinthe processor is further configured to scroll the document only if theone of the first and second surface portions indicated by the at leastone signal is held by the pointer for at least a threshold amount oftime.
 12. The system of claim 11, further including a third surfaceportion disposed between the first and second surface portions.
 13. Thesystem of claim 12, wherein the third surface portion is elongated andphysically continuous with the first and second surface portions, thefirst and second surface portions being disposed at opposing end regionsof the third surface portion.
 14. A method for changing a scroll mode ina computer system for scrolling a document, the method comprising thesteps of: placing the computer in a first scrolling mode; sensing agesture made by a pointer on a central portion of a touch-sensitivesurface between two ends of the touch-sensitive surface; determiningwhether the gesture is a certain gesture; and responsive to the gesturebeing a certain gesture, placing the computer in a different secondscrolling mode.
 15. A method for scrolling a document, comprising:determining whether a pointer is touching a first surface portion or asecond surface portion of a touch-sensitive device; responsive todetermining that the pointer is touching the first surface portion,scrolling the document in a first direction; and responsive todetermining that the pointer is touching the second surface portion,scrolling the document in a different second direction.
 16. The methodof claim 15, wherein the first and second directions are oppositedirections.
 17. The method of claim 15, wherein the step of scrollingthe document in the first direction includes scrolling the document inthe first direction at a first rate, and the step of scrolling thedocument in the second direction includes scrolling the document at adifferent second rate.
 18. The method of claim 17, wherein the first andsecond rates are different per unit of pressure applied by the pointer.19. A method for scrolling a document, comprising the steps of:detecting a touch of a pointer on a portion of a touch-sensitivesurface; determining whether the pointer is still touching the portionof the touch-sensitive surface upon an expiration of a first timeout,and if so, autoscrolling the document; and determining whether thepointer is still touching the portion of the touch-sensitive surfaceupon an expiration of a second timeout longer than the first timeout,and if not, undoing at least a portion of an amount that the documenthas autoscrolled.